<?xml version="1.0" encoding="utf-8" ?>
<CodeDoc>
	<Delegate name="GetPersistStringDelegate">
		<summary>
			Callback used by <see cref="Fireball.Docking.DockContentHandler"/>
			to get a string for serialization.
		</summary>
		<returns>
			The string for serialization.
		</returns>
		<remarks>
			A <see cref="Fireball.Docking.GetPersistStringDelegate"/> can be passed to DockContentHandler
			through the constructor, or by setting its <see cref="Fireball.Docking.DockContentHandler.GetPersistStringDelegate" /> property.
		</remarks>
	</Delegate>
	<Class name="DockContentHandler">
		<ClassDef>
			<summary>Handles the form as dockable by DockPanel.</summary>
			<remarks>
				<para>
					To use the DockPanel library, implement <see cref="IDockContent" /> interface on your form.
					the <see cref="IDockContent" /> interface has a property <see cref="Fireball.Docking.IDockContent.DockHandler" /> returns a
					<see cref="Fireball.Docking.DockContentHandler" /> object.
					There are several overloaded <see cref="DockContentHandler.Show" /> methods to show <see cref="IDockContent" /> as specified docking state.
				</para>
			</remarks>
		</ClassDef>
		<Constructor name="Overloads">
			<overloads>
				<summary>Initializes a new instance of <see cref="Fireball.Docking.DockContentHandler" /> class.</summary>
			</overloads>
		</Constructor>
		<Constructor name="(Form)">
			<summary>Initialize a new instance of <see cref="Fireball.Docking.DockContentHandler" /> class,
			associates with the specified <see cref="Form" /> object.</summary>
			<param name="form">The <see cref="Form"/> object to associate with.</param>
		</Constructor>
		<Constructor name="(Form, GetPersistStringDelegate)">
			<summary>Initialize a new instance of <see cref="Fireball.Docking.DockContentHandler" /> class,
			associates with the specified <see cref="Form" /> object, providing the specified serialization callback.</summary>
			<param name="form">The <see cref="Form"/> object to associate with.</param>
			<param name="getPersistStringDelegate">The <see cref="Fireball.Docking.GetPersistStringDelegate"/> callback for serialization.</param>
		</Constructor>
		<Property name="AllowRedocking">
			<summary>Gets or sets to specify whether drag and drop re-docking is allowed.</summary>
			<value><b>True</b> if drag and drop re-docking is allowed, otherwise, <b>false</b>.</value>
		</Property>
		<Property name="AutoHidePortion">
			<summary>Gets or sets to specify the portion of the screen size when showing in auto-hide mode.</summary>
			<value>A value between 0 and 1 to specify the portion of the DockPanel to determine the size of the window when
			displaying in auto-hide mode. The default value is 0.25 (25%).</value>
			<exception cref="ArgumentOutOfRangeException">Thrown when value is not between 0 and 1.</exception>
		</Property>
		<Property name="CloseButton">
			<summary>Gets or sets to enalbe/disable the close button for this IDockContent in the DockPane.</summary>
			<value><b>True</b> to enable the close button; <b>false</b> to disable.</value>
		</Property>
		<Property name="DockableAreas">
			<summary>Gets or sets to specify the areas this IDockContent can be displayed.</summary>
			<value>
				Combination of <see cref="DockAreas" /> values.
				If <see cref="DockContentHandler.DockState" /> conflicts with this value, a exception will be thrown.
			</value>
		</Property>
		<Property name="DockPanel">
			<summary>Gets or sets to attach/detach the IDockContent to DockPanel.</summary>
			<value><see cref="Fireball.Docking.DockPanel" /> object to attach. <b>Null</b> to detach this IDockContent to any DockPanel.</value>
		</Property>
		<Property name="DockState">
			<summary>Gets or sets the docking state of <see cref="Fireball.Docking.IDockContent" />.</summary>
			<value>
				One of the <see cref="Fireball.Docking.DockState" /> values:
				<list type="table">
					<listheader>
						<term>Value</term>
						<term>Description</term>
					</listheader>
					<item>
						<description>
							<see cref="Fireball.Docking.DockState.Unknown" />
						</description>
						<description>Valid only when the <see cref="Fireball.Docking.IDockContent" /> is newly
						initialized or detached from <see cref="Fireball.Docking.DockPanel" />. Can not
						be explicitly set.</description>
					</item>
					<item>
						<description>
							<see cref="Fireball.Docking.DockState.Hidden" />
						</description>
						<description>Synchronized with the <see cref="Fireball.Docking.DockContentHandler.IsHidden" /> property.</description>
					</item>
					<item>
						<description>
							<b>Others</b>
						</description>
						<description>Synchronized with the docking state of
						<see cref="Fireball.Docking.DockContentHandler.Pane" />.</description>
					</item>
				</list>
			</value>
			<include file='DockContentHandler.xml' path='//CodeDoc/Class[@name="DockContentHandler"]/Property[@name="Pane"]/remarks' />
		</Property>
		<Property name="FloatPane">
			<summary>Gets or sets the containing <see cref="Fireball.Docking.DockPane" /> object when floating.</summary>
			<value>The containing <see cref="Fireball.Docking.DockPane" /> object when floating.</value>
			<include file='DockContentHandler.xml' path='//CodeDoc/Class[@name="DockContentHandler"]/Property[@name="Pane"]/remarks' />
		</Property>
		<Property name="Form">
			<summary>Gets the form associated with this <see cref="Fireball.Docking.DockContentHandler" />.</summary>
			<value>The form associated with this <see cref="Fireball.Docking.DockContentHandler" />.</value>
		</Property>
		<Property name="Content">
			<summary>Gets the IDockContent form associated with this <see cref="Fireball.Docking.DockContentHandler" />.</summary>
			<value>The IDockContent form associated with this <see cref="Fireball.Docking.DockContentHandler" />.</value>
		</Property>
		<Property name="HideOnClose">
			<summary>Gets or sets to determine when clicking the close button, the IDockContent form should be closed or hidden.</summary>
			<value><b>True</b> to hide the form when clicking the close button; otherwise, <b>false</b>. The default value is <b>false</b>.</value>
		</Property>
		<Property name="Icon">
			<summary>Gets the icon for displaying in the tab strip.</summary>
			<value>The icon of the form for displaying in the tab strip.</value>
		</Property>
		<Property name="IsActivated">
			<summary>Gets to specified the IDockContent object is currently activated.</summary>
			<value><b>True</b> if the IDockContent object is currently activated, otherwise, <b>false</b>.</value>
		</Property>
		<Property name="IsFloat">
			<summary>Gets or sets whether the IDockContent object is floating.</summary>
			<value><b>True</b> if the IDockContent object is floating; otherwise, false.</value>
		</Property>
		<Property name="IsHidden">
			<summary>Gets or sets whether the IDockContent object is hidden.</summary>
			<value><b>True</b> if the IDockContent object is hidden; otherwise, false.</value>
		</Property>
		<Property name="Pane">
			<summary>Gets or sets the displayed containing <see cref="Fireball.Docking.DockPane" /> object.</summary>
			<value>The currently displayed containing <see cref="Fireball.Docking.DockPane" /> object.</value>
			<remarks>
				A <see cref="Fireball.Docking.IDockContent" /> object can have two containing
				<see cref="Fireball.Docking.DockPane" /> objects: <see cref="Fireball.Docking.DockContentHandler.PanelPane" /> and
				<see cref="Fireball.Docking.DockContentHandler.FloatPane" />. The <see cref="Fireball.Docking.DockContentHandler.Pane" />
				property returns currently displaying containing <see cref="Fireball.Docking.DockPane" />. The docking state of a
				<see cref="Fireball.Docking.IDockContent" /> object is always synchronized with its displaying containing
				<see cref="Fireball.Docking.DockPane" />.
			</remarks>
		</Property>
		<Property name="PanelPane">
			<summary>Gets or sets the containing <see cref="Fireball.Docking.DockPane" /> object when docked.</summary>
			<value>The containing <see cref="Fireball.Docking.DockPane" /> object when docked.</value>
			<include file='DockContentHandler.xml' path='//CodeDoc/Class[@name="DockContentHandler"]/Property[@name="Pane"]/remarks' />
		</Property>
		<Property name="ShowHint">
			<summary>Gets or sets the desired docking state for this IDockContent object.</summary>
			<value>One of the valid <see cref="Fireball.Docking.DockState" /> values. This value should not
			conflicts with <see cref="Fireball.Docking.DockContentHandler.DockableAreas" /> property.</value>
		</Property>
		<Property name="TabPageContextMenu">
			<summary>Gets or sets the context menu for the DockPane tab page.</summary>
			<value>The <see cref="System.Windows.Forms.ContextMenu" /> for the DockPane tab page.</value>
		</Property>
		<Property name="TabText">
			<summary>Gets or sets the text to display for the DockPane tab strip.</summary>
			<value>The text to display for the DockPane tab strip.</value>
			<remarks>If this value is not set, the value of <see cref="Control.Text" /> will be used.</remarks>
		</Property>
		<Property name="ToolTipText">
			<summary>Gets or sets the tooltip text for this form.</summary>
			<value>The tooltip text for this form.</value>
		</Property>
		<Property name="VisibleState">
			<summary>Gets or sets the visible docking state for this form.</summary>
			<value>One of the <see cref="Fireball.Docking.DockState" /> values for visible docking state of this form.</value>
		</Property>
		<Method name="Activate()">
			<summary>Activates the IDockContent form and gives it focus.</summary>
			<remarks>Activating the IDockContent form makes it the <see cref="Fireball.Docking.DockPane.ActiveContent" /> of its
			containing <see cref="Fireball.Docking.DockPane" />. To determine the active IDockContent in an application,
			use <see cref="Fireball.Docking.DockPanel.ActiveContent" /> property. To determine the active document
			content, use <see cref="Fireball.Docking.DockPanel.ActiveDocument" /> property.</remarks>
		</Method>
		<Method name="Close()">
			<summary>Closes the IDockContent form.</summary>
		</Method>
		<Method name="Hide()">
			<summary>Conceals the IDockContent form the user.</summary>
			<remarks>
				Hiding the IDockContent form is equivalent to setting the <see cref="Fireball.Docking.DockContentHandler.IsHidden" /> to <b>true</b>.
			</remarks>
		</Method>
		<Property name="GetPersistStringDelegate">
			<summary>Gets or sets the callback to return the serialization string for this IDockContent object.</summary>
			<value>The <see cref="Fireball.Docking.GetPersistStringDelegate" /> callback to return the serialization string for this IDockContent object.</value>
		</Property>
		<Method name="IsDockStateValid(DockState)">
			<summary>Test with <see cref="Fireball.Docking.DockContentHandler.DockableAreas" /> to see whether the specified
			<see cref="Fireball.Docking.DockState" /> is valid.</summary>
			<param name="dockState">The specified <see cref="Fireball.Docking.DockState" /> value to test.</param>
		</Method>
		<Method name="OnDockStateChanged(EventArgs)">
			<summary>Raises the <see cref="Fireball.Docking.DockContentHandler.DockStateChanged" /> event.</summary>
			<param name="e">An <see cref="System.EventArgs" /> that contains the event data.</param>
		</Method>
		<Method name="Show">
			<overloads>
				<summary>Displays the form. Overloaded.</summary>
			</overloads>
		</Method>
		<Method name="Show()">
			<summary>Displays the form, with default settings.</summary>
			<remarks>If <see cref="Fireball.Docking.DockContentHandler.DockPanel"/> property is set, the form
			will be displayed as <see cref="Fireball.Docking.DockContentHandler.ShowHint"/> docking state;
			otherwise it will be displayed as normal form.</remarks>
		</Method>
		<Method name="Show(DockPane, DockAlignment, double)">
			<summary>Displays the form, as specified nested docking.</summary>
			<param name="prevPane">The target <see cref="Fireball.Docking.DockPane"/> to dock.</param>
			<param name="alignment">The edge of the target <see cref="Fireball.Docking.DockPane"/> to dock.</param>
			<param name="proportion">The proportion size of the source <see cref="Fireball.Docking.DockPane"/> to take
			inside the target <see cref="Fireball.Docking.DockPane"/>.</param>
		</Method>
		<Method name="Show(DockPane, IDockContent)">
			<summary>Displays the form, at the specified tab location of DockPane</summary>
			<param name="pane">The target <see cref="Fireball.Docking.DockPane"/> to contain this IDockContent.</param>
			<param name="beforeContent">The position to show in the tab strip of the <see cref="Fireball.Docking.DockPane"/>.
			<b>Null</b> to show at the last position in the tab strip.
			</param>
		</Method>
		<Method name="Show(DockPanel)">
			<summary>Displays the form, attaching to specified DockPanel.</summary>
			<param name="dockPanel">The <see cref="Fireball.Docking.DockPanel"/> object to attach.</param>
		</Method>
		<Method name="Show(DockPanel, Rectangle)">
			<summary>Displays the form, as floating window at the specified location and size.</summary>
			<param name="dockPanel">The <see cref="Fireball.Docking.DockPanel"/> object to attach.</param>
			<param name="floatWindowBounds">The bounds of the floating window.</param>
		</Method>
		<Method name="Show(DockPanel, DockState)">
			<summary>Displays the form, with specified docking state.</summary>
			<param name="dockPanel">The <see cref="Fireball.Docking.DockPanel"/> object to attach.</param>
			<param name="dockState">The docking state to display.</param>
		</Method>
		<Event name="DockStateChanged">
			<summary>Occurs when the <see cref="Fireball.Docking.DockContentHandler.DockState"/> property changed.</summary>
		</Event>
	</Class>
</CodeDoc>
